KFbxCharacterPose Class Reference

#include <kfbxcharacterpose.h>
Inheritance diagram for KFbxCharacterPose:
Inheritance graph
[legend]

List of all members.


Detailed Description

A character pose is a character and an associated hierarchy of nodes.

Only the default position of the nodes is considered, the animation data is ignored.

You can access the content of a character pose, using the functions KFbxCharacterPose::GetOffset(), KFbxCharacterPose::GetLocalPosition(), and KFbxCharacterPose::GetGlobalPosition(). Their source code is provided inline as examples on how to access the character pose data.

To create a character pose, You must first create a hierarchy of nodes under the root node provided by function KFbxCharacterPose::GetRootNode(). Then, feed this hierarchy of nodes into the character returned by function KFbxCharacterPose::GetCharacter(). Offsets are set in the character links. Local positions are set using KFbxNode::SetDefaultT(), KFbxNode::SetDefaultR(), and KFbxNode::SetDefaultS().

To set local positions from global positions:

  1. Declare lCharacterPose as a valid pointer to a KFbxCharacterPose;
  2. Call lCharacterPose->GetRootNode()->SetLocalStateId(0, true);
  3. Call lCharacterPose->GetRootNode()->SetGlobalStateId(1, true);
  4. Call KFbxNode::SetGlobalState() for all nodes found in the hierarchy under lCharacterPose->GetRootNode();
  5. Call lCharacterPose->GetRootNode()->ComputeLocalState(1, true);
  6. Call lCharacterPose->GetRootNode()->SetCurrentTakeFromLocalState(KTIME_ZERO, true).

Definition at line 81 of file kfbxcharacterpose.h.


Public Member Functions

void  Reset ()
  Reset to an empty character pose.
KFbxNode GetRootNode () const
  Get the root node.
KFbxCharacter GetCharacter () const
  Get the character.
bool  GetOffset (ECharacterNodeId pCharacterNodeId, KFbxXMatrix &pOffset) const
  Get offset matrix for a given character node.
bool  GetLocalPosition (ECharacterNodeId pCharacterNodeId, KFbxVector4 &pLocalT, KFbxVector4 &pLocalR, KFbxVector4 &pLocalS) const
  Get local position for a given character node.
bool  GetGlobalPosition (ECharacterNodeId pCharacterNodeId, KFbxXMatrix &pGlobalPosition) const
  Get global position for a given character node.

Member Function Documentation

void Reset (  ) 

Reset to an empty character pose.

KFbxNode* GetRootNode (  )  const

Get the root node.

Returns:
Pointer to the root node.

KFbxCharacter* GetCharacter (  )  const

Get the character.

Returns:
Pointer to the character.

bool GetOffset ( ECharacterNodeId  pCharacterNodeId,
KFbxXMatrix pOffset  
) const [inline]

Get offset matrix for a given character node.

Parameters:
pCharacterNodeId  Character Node ID.
pOffset  Receives offset matrix.
Returns:
true if successful, false otherwise.

Definition at line 104 of file kfbxcharacterpose.h.

References KFbxCharacterLink::mOffsetR, KFbxCharacterLink::mOffsetS, KFbxCharacterLink::mOffsetT, and KFbxXMatrix::SetTRS().

bool GetLocalPosition ( ECharacterNodeId  pCharacterNodeId,
KFbxVector4 pLocalT,
KFbxVector4 pLocalR,
KFbxVector4 pLocalS  
) const [inline]

Get local position for a given character node.

Parameters:
pCharacterNodeId  Character Node ID.
pLocalT  Receives local translation vector.
pLocalR  Receives local rotation vector.
pLocalS  Receives local scaling vector.
Returns:
true if successful, false otherwise.

Definition at line 124 of file kfbxcharacterpose.h.

References KFbxScene::GetEvaluator(), KFbxAnimEvaluator::GetNodeLocalTransform(), KFbxXMatrix::GetR(), KFbxXMatrix::GetS(), KFbxObject::GetScene(), KFbxXMatrix::GetT(), and KFbxCharacterLink::mNode.

bool GetGlobalPosition ( ECharacterNodeId  pCharacterNodeId,
KFbxXMatrix pGlobalPosition  
) const [inline]

Get global position for a given character node.

Parameters:
pCharacterNodeId  Character Node ID.
pGlobalPosition  Receives global position.
Returns:
true if successful, false otherwise.

Definition at line 148 of file kfbxcharacterpose.h.

References KFbxScene::GetEvaluator(), KFbxAnimEvaluator::GetNodeGlobalTransform(), KFbxObject::GetScene(), and KFbxCharacterLink::mNode.

KFbxCharacterPose KFbxCharacterPose KFbxCharacterPose KFbxCharacterPose KFbxCharacterPose KFbxCharacterPose KFbxCharacterPose KFbxCharacterPose KFbxCharacterPose KFbxCharacterPose
KFbxCharacterPose KFbxCharacterPose KFbxCharacterPose KFbxCharacterPose KFbxCharacterPose KFbxCharacterPose KFbxCharacterPose KFbxCharacterPose KFbxCharacterPose KFbxCharacterPose